I. Field of the Invention
The present invention relates to a technique for generating a web page that is viewed through an Internet browser. More specifically, the invention relates to a technique for reducing the load time required when viewing a web page.
II. Related Art
Web pages viewed on the Internet have been very commonly used as information sending means, advertizing means, or information gathering means. Recently, there has been an appearance of high-functionality, complicated web pages that not only are intended to be viewed, but also to include many pages and images having dynamic functions using JavaScript(R).
For such complicated web pages including many contents, it takes time to load their top page through a browser. Certain statistics suggest that users exit a page if it takes eight seconds or more to load the page.
Known attempts to reduce the load time of pages include a technology that dynamically causes a client to request necessary files at run time, connects the files on the server, and transfers the connected file. While this technology has an advantage in that optimization is performed individually for each client, it has disadvantages in that a special procedure must be followed in generating a web page, and in that an overhead occurs on the server at run time.
Other known technologies include one that previously connects files to be loaded on a page; however, this technology disadvantageously can perform only rough optimization such as connection of all files or connection of only files related to a particular page.
FIG. 1 shows a state-of-the-art example of a simple process in which multiple files are combined to improve the response time. Specifically, when an HTML file 102 is referring to JavaScript(R) files 104, 106, and 108, the files 104, 106, and 108 are connected to a file 110 using an existing tool. An HTML file 112 refers to the combined file 110. This change improves the response time. Known existing tools having such a function include Dojo custom build and Scriptalizer.
FIG. 2 shows an example of response time improvement where each page is brought into focus. In FIG. 2, a client 1 browses HTML files 202 and 206 sequentially. Files 204 and 208 including JavaScript(R) are sequentially loaded accordingly.
On the other hand, a client 2 is only required to download a file including only necessary function C( ) and function D( ). This is done rapidly.
Since the client 1 was originally intended to browse only the HTML file 202, it is useless that the client 1 has loaded function D( ). Further, the inclusion of function C( ) in both the files 204 and 206 complicates source code management. For example, if function C( ) in the file 204 is changed, function C( ) in file 206 must be changed as well.
FIG. 3 shows an example of response time improvement where an HTML file 302 is brought into focus. In FIG. 3, a client 1 browses HTML files 302 and 306 sequentially. Files 304 and 308 including JavaScript(R) are sequentially loaded accordingly.
On the other hand, a client 2 uses the HTML file 306 loaded and cached by the client 1, but downloads unnecessary function A( ) and B( ) through the HTML file 306.
FIG. 4 shows an example in which accesses are balanced. In this example, an HTML file 402 refers to files 404 and 408, while an HTML file 406 refers to files 408 and 410. The HTML file 402 is accessed frequently, while the HTML file 406 is accessed moderately. Function C( ) must be included in the file 408.
Use of such an approach can balance accesses to the pages to improve the load speed.
However, an actual web application page as shown in FIG. 5 includes many pages, and some of the pages include JavaScript(R). Accordingly, optimization of JavaScript(R) connection in a certain page can result in reductions in performance of other pages.
In an attempt to use a response improvement approach as described above, consideration must be made to an exponential combination of an HTML file, a JavaScript(R) file, and a JavaScript(R) function. Accordingly, such an approach cannot be allowed in terms of computational complexity.
Known related art examples to address the above-mentioned problem include the following ones. Japanese Unexamined Patent Application Publication No. 2001-34527 discloses a method including: holding a frame management sheet where multiple combination patterns of frame placement and contents are described and defined as one file, on a WWW browser as initial display information; reading a frame display definition file; displaying contents described on the frame display definition file; when receiving a content change request from the operator, determining whether there are frames having the same placement, by referring to the frame management sheet; making a request for only contents whose placement is to be changed, to the WWW server; and when receiving changed contents from the WWW server, displaying the changed contents to speed up screen display.
Japanese Patent Application Publication No. 2001-356957 discloses an information display terminal apparatus including: browsing means that displays information on a screen; server means that stores necessary page data to display the information; and cache means that speeds up information display performed by the browsing means by holding part of the stored page data. In updating page data within the server means, an external device directly writes updated data to the cache means.
Japanese Patent Application Publication No. 2002-222165 discloses a method including, in displaying (viewing) an HTML document including multiple images in the display area, preferentially receiving images included in the displayable area (viewing area) over other images regardless of the placement order (appearance order) in the HTML document or the like and displaying the images rapidly so as to speed up the display of the HTML document involving image display and reduce the image display waiting time to increase viewing operability.
Japanese Patent Application Publication No. 2009-110216 discloses a server apparatus that designates a frequently viewed URL in an URL importance table with the URL given higher importance and thus changes the priority in a screen cache priority table in accordance with the importance of the designated URL and that stores drawing data in a cache memory for the drawing data. This related-art example also discloses a client apparatus that, when running a web browser, reads drawing data of a frequently viewed URL with high priority from a cache memory for the drawing data and displays the drawing data.
Japanese Patent Application Publication No. 2010-170182 discloses a data display apparatus including browser function means which is connected to a data accumulation apparatus via a network and which displays data for display accumulated in the data accumulation apparatus. A browser cache determination unit within the browser function means determines whether data for display requested by the user is stored in the browser cache area. If the data is not stored, the data is obtained from an application server within the data accumulation apparatus so as to speed up data display.
While any of the above-mentioned related art examples make some contribution to increasing the speed of page display through a browser, use of these related art examples to improve the response time of complicated web pages including many pages, a script, a function, and an image can cause a combinatorial explosion which is difficult to handle.